﻿using Sidvall.IO;
using System.Threading;
using System.Threading.Tasks;

namespace Sidvall.Web.IO
{
    public interface IFileManagerStrategy
    {
        Task OnAfterFlushAsync(Store store, Sidvall.Web.IO.Data.OpenFileContext context, CancellationToken cancellationToken);
        Task OnAfterOpenFileAsync(Store store, Sidvall.Web.IO.Data.OpenFileContext context, FileMode mode, FileAccess access, CancellationToken cancellationToken);
        Task OnBeforeFlushAsync(Store store, Sidvall.Web.IO.Data.OpenFileContext context, CancellationToken cancellationToken);
        Task OnBeforeOpenFileAsync(Store store, Sidvall.Web.IO.Data.OpenFileContext context, FileMode mode, FileAccess access, CancellationToken cancellationToken);
    }
}
